﻿using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Xml.Linq;
using Tyloo.Resources;

namespace Tyloo.ViewModels
{
    public class AllDataModel : INotifyPropertyChanged
    {
        public AllDataModel()
        {
            this.Items = new ObservableCollection<ItemViewModel>();
            this.Home = new ObservableCollection<ItemViewModel>();
            this.Fashion = new ObservableCollection<ItemViewModel>();
            this.Gosip = new ObservableCollection<ItemViewModel>();
            this.Story = new ObservableCollection<ItemViewModel>();
            this.Myworld = new ObservableCollection<ItemViewModel>();
            this.Bookmarks= new ObservableCollection<ItemViewModel>();
            this.RecentItems = new ObservableCollection<ItemViewModel>();
            this.InfoItems = new ObservableCollection<ItemViewModel>();
        }

        /// <summary>
        /// A collection for ItemViewModel objects.
        /// </summary>
        public ObservableCollection<ItemViewModel> Items { get; private set; }
        public ObservableCollection<ItemViewModel> Home { get; private set; }
        public ObservableCollection<ItemViewModel> Fashion { get; private set; }
        public ObservableCollection<ItemViewModel> Gosip { get; private set; }
        public ObservableCollection<ItemViewModel> Myworld { get; private set; }
        public ObservableCollection<ItemViewModel> Story { get; private set; }
        public ObservableCollection<ItemViewModel> AllItems { get; private set; }
        public ObservableCollection<ItemViewModel> Bookmarks { get; private set; }
        public ObservableCollection<ItemViewModel> RecentItems { get; private set; }
        public ObservableCollection<ItemViewModel> InfoItems { get; private set; }

        private string _sampleProperty = "Sample Runtime Property Value";
        /// <summary>
        /// Sample ViewModel property; this property is used in the view to display its value using a Binding
        /// </summary>
        /// <returns></returns>
        public string SampleProperty
        {
            get
            {
                return _sampleProperty;
            }
            set
            {
                if (value != _sampleProperty)
                {
                    _sampleProperty = value;
                    NotifyPropertyChanged("SampleProperty");
                }
            }
        }

        public void insertBookmarks(ItemViewModel items)
        {
            Bookmarks.Insert(0,items);
            if (Bookmarks.Count > 6)
                Bookmarks.RemoveAt(6);
        }
        public void insertRecent(ItemViewModel items)
        {
            foreach (var item in RecentItems)
            {
                if (item.Id == items.Id)
                    return;
            }
            RecentItems.Insert(0, items);
            if (RecentItems.Count > 6)
                RecentItems.RemoveAt(6);
        }
        /// <summary>
        /// Sample property that returns a localized string
        /// </summary>
        public string LocalizedSampleProperty
        {
            get
            {
                return AppResources.SampleProperty;
            }
        }

        public ObservableCollection<ItemViewModel> getSearch(string text)
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel> ();
            foreach (var item in AllItems)
            {
                if (item.Title.ToLower().Contains(text.ToLower()))
                    retVal.Add(item);
                else if(item.Content.ToLower().Contains(text.ToLower()))
                    retVal.Add(item);
            }
            return retVal;
        }

        public bool IsDataLoaded
        {
            get;
            private set;
        }

        private string cutUselessChar(string text)
        {
            string retVal = text;
            retVal = retVal.Replace("<p>", "");
            retVal = retVal.Replace("</p>", "");
            retVal = retVal.Replace("<em>", "");
            retVal = retVal.Replace("</em>", "");
            return retVal;
        }
        public ObservableCollection<ItemViewModel> getRandomInfo()
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel>();
            ObservableCollection<ItemViewModel> temp = new ObservableCollection<ItemViewModel>();
            foreach (var item in InfoItems)
            {
                temp.Add(item);
            }
            Random rand = new Random();
            int randomVal= 0;
            while (retVal.Count < 6)
            {
                randomVal = rand.Next(temp.Count);
                retVal.Add(temp[randomVal]);
                temp.RemoveAt(randomVal);
            }
            return retVal;
        }
        public ObservableCollection<ItemViewModel> getRelated(string id)
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel>();
            ObservableCollection<ItemViewModel> temp = new ObservableCollection<ItemViewModel>();
            foreach (var item in AllItems)
            {
                temp.Add(item);
            }
            Random rand = new Random();
            int randomVal = 0;
            while (retVal.Count < 6)
            {
                randomVal = rand.Next(temp.Count);
                if ( temp[randomVal].Id != id)
                {
                    retVal.Add(temp[randomVal]);
                    temp.RemoveAt(randomVal);
                }
            }
            return retVal;
        }
        /// <summary>
        /// Creates and adds a few ItemViewModel objects into the Items collection.
        /// </summary>
        public void LoadData()
        {
            // Sample data; replace with real data
            Home = new ObservableCollection<ItemViewModel>();
            AllItems = new ObservableCollection<ItemViewModel>();
            XDocument XDoc = XDocument.Load("data.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Home.Add(item);
                AllItems.Add(item);
            }

            Gosip = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("gosipselebs.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = (members.Element("medium") != null) ? members.Element("medium").Value : members.Element("large") != null ? members.Element("large").Value : members.Element("small").Value;
                }
                Gosip.Add(item);
                AllItems.Add(item);
            }

            Fashion = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("fashion.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Fashion.Add(item);
                AllItems.Add(item);
            }

            Myworld= new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("myworld.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Myworld.Add(item);
                AllItems.Add(item);
            }

            Story = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("story.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Story.Add(item);
                AllItems.Add(item);
            }
            //this.Items.Add(new ItemViewModel() { Title = "runtime one", Description = "Maecenas praesent accumsan bibendum", Content = "Facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu" });

            InfoItems = new ObservableCollection<ItemViewModel>();
            this.InfoItems.Add(new ItemViewModel() { Id = "1", Title = "Greyson Chance: Tiga Video Istimewa", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Greyson_Chance:_Tiga_Video_Istimewa.jpg", Description = "Walaupun udah beberapa kali dateng ke Indonesia, kayaknya masih belum bisa memenuhi rasa kangen kita sama Greyson, setuju enggak girls?", Content = "Walaupun udah beberapa kali dateng ke Indonesia, kayaknya masih belum bisa memenuhi rasa kangen kita sama Greyson, setuju enggak girls? Ditambah lagi kunjungannya Greyson ke Asia kemarin enggak dilengkapi dengan kunjungan ke Indonesia. Pasti bikin Greysonator dan Enchancher makin gregetan deh. Tapi tenang, KaWanku pilihin tiga video Greyson Chance yang bakal memenuhi rasa kangen kita. Greyson Chance di MTV Session Promo EP terbaru Greyson Chance Truth Be Told part 1 ditandai dengan adanya episode MTV Sessions Greyson Chance. Syutingnya sendiri dilakukan di Singapura awal bulan November lalu. Tapi oleh MGV baru disiarkan 1 Desember kemarin. Mau tau sekeren apa, klik aja di sini. Video klip terbaru Greyson Chance  Video klip Sunshine & City Light ini jadi memiliki judul yang sama dengan album baru Greyson lho! Di upload tanggal 16 November ini udah punya 300ribu lebih penonton Youtube. Greyson Chance Coba Blankon  Wah ini yang lucu. Saat W punya kesempatan wawancara sama Greyson Chance tahun lalu, Greyson berkesempatan nyobain Blankon, lucu ya! Biar rasa kangennya tidak terhalang buffering, jangan lupa nyalain 3G di gadget dan pakai prosesor Snapdragon. Prosesor yang adalah chip cerdas ini akan membuat fitur 3G di gagdet kita bekerja lebih cepat, jadi suara merdu Greyson Chance akan kita nikmati dengan sempurna." });
            this.InfoItems.Add(new ItemViewModel() { Id = "2", Title = "Dianna Agron: Techno Girls!", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Dianna_Agron:_Techno_Girls!.jpg", Description = "Berhasil memerankan cewek populer di layar televisi ternyata enggak membuat Dianna Agron lengah", Content = "Berhasil memerankan cewek populer di layar televisi ternyata enggak membuat Dianna Agron lengah dengan dunia gadget dan Internet. Enggak hanya sekadar tahu, Dianna justru sangat kegandrungan dengan Internet dan gadget. Mau tahu se-addict apa? Charlie Dianna memang sudah cukup kenal dengan dunia internet sejak lama. Kecintaannya bermain internet ditunjukkannya dengan aktif diberbagai macam akun social media dan blog. Salah satunya adalah akun Tumblr yang bernama You Can Call Me Charlie. Seiring berjalannya waktu, Dianna merasa akun yang tumblr yang selama ini dia miliki hanya berisikan tentang dia. Dianna merasa kalau orang-orang yang membaca atau mengkuti Tumblr-nya juga pasti ingin berbagi informasi yang sama maka dia buatlah sebuah sebuah situs yang bernama You, Me&Charlie. 'Semua orang yang follow akun Tumblr-ku akan melihat foto yang aku ambil, musik yang sedang aku dengarkan, buku yang sedang aku baca. Karena pembacaku menikmatinya, aku merasa beberapa pembacaku ingin terlibat di dalamnya. Aku mulai mendapatkan hasil rekaman dari pembaca, buku, dan juga foto. Dan aku melihat semua karya mereka sangat menarik jadi aku buat situs ini agar mereka mendapat tempat untuk berbagi hal-hal yang mereka sukai dan tekuni saat ini,' cerita Dianna mengawali situsnya yang bernama You, Me&Charlie. Lewat situs You, Me& Charlie  Dianna menciptakan tempat yang cocok untuk anak-anak muda mengeksplor seni, musik, dan mendengarkannya kepada orang yang akan menyukainya juga, 'Keindahan mengeksplor You, Me& Charlie adalah banyaknya rekomendasi dari pembaca kita,' ujar Dianna. 'Aku ingin menciptakan situs yang bisa berkolaborasi dan memperkenalkan orang-orang kepada seni yang mereka tidak pernah kenal. Sangat menyenangkan bisa memiliki media yang bisa menampung dan mendukung seniman-seniman baru,' tambah Dianna." });
            this.InfoItems.Add(new ItemViewModel() { Id = "3", Title = "Kris EXO-M: The Koala Leader", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Kris_EXO-M:_The_Koala_Leader.jpg", Description = "Cowok yang punya nama asli Wu Yifan ini lahir di Li Jiaheng 6 November 1990.", Content="Cowok yang punya nama asli Wu Yifan ini lahir di Li Jiaheng 6 November 1990. Namun semasa kecil orang tuanya pindah ke Vancouver Kanada dan mereka sekeluarga tinggal di sana hingga sekarang. Karena itu selain fasih berbahasa Mandarin, dia juga fasih berbahasa Inggris. Saat press konference SM Town di Jakarta pun Kris memilih berbicara dengan bahasa Inggris. Setelah lolos kasting di SM Entertainment, Kris menambah satu bahasa yang dikuasainya yaitu bahasa Korea. Cowok rumahan Kris mengaku dirinya tipe cowok yang lebih senang tinggal di rumah. Dia menyebut dirinya seperti koala. 'Kalau musim panas  aku butuh waktu untuk istirahat,' jelas Kris soal nama nicknamenya. Hi.hi.hi. Tapi di musim dingin pun Kris lebih suka menghabiskan waktu di rumah. 'Udaranya dingin jadi aku selalu tinggal di rumah. Kadang aku menghabiskan waktu bersama Ibuku, beberapa teman atau sendirian pun enggak masalah,' ucap Kris. Setelah tinggal dengan teman-temannya di EXO, Kris tetap punya waktu untuk menyendiri. Dia paling suka duduk dan makan di sebuah restoran beef di dekat kantor SM. 'Sayang aja aku harus menjaga apa yang aku makan, aku sengaja menghindari makan beef,' ucap Kris sehingga dia enggak bisa terlalu sering nongkrong disitu." });
            this.InfoItems.Add(new ItemViewModel() { Id = "4", Title = "Greyson Chance: “My Puppy Whiskey!”", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Greyson_Chance:_%E2%80%9CMy_Puppy_Whiskey!%E2%80%9D.jpeg", Description = "I miss Whiskey way too much", Content = ",” tulis Greyson di akun Twitter-nya beberapa waktu lalu. Ketika itu, Greyson sedang berada dalam tur di Asia. Sementara anjing yang baru dipeliharanya itu ada di rumahnya di Oklahoma, Amerika. Bukan hanya di Twitter, nama Whiskey juga sering sekali Greyson sebut. Dalam wawancara, ketika ngobrol sama fans, juga di atas panggung ketika sedang tampil. “Aku punya anak anjing yang paling lucu di dunia. Namanya Whiskey dan aku kangen banget sama dia,” ungkap Greyson ketika tampil di Singapura di bulan November 2012. Kecemburuan Smokey, Oreo, dan White Sebelum memiliki Whiskey, Greyson pernah punya anjing bernama Macy, seekor golden retriever. Macy menemani Greyson hingga tahun 2011. Keluarga Chance juga tiga kucing bernama Smokey, Oreo, dan White. Sejak adanya Whiskey dan karena saking selalu ngomongin dan main sama Whiskey, para kucing merasa cemburu, tuh. “My cats have been getting jealous of the attention whiskey is getting. Sorry kitties,” tulis Greyson sambil posting fotonya bersama si kucing ke Instagram. Hi-hi-hi. Whiskey’s personal photographer Selain jadi teman main Whiskey, Greyson juga resmi jadi fotografernya Whiskey, nih! Enggak jarang Greyson posting foto Whiskey dengan berbagai pose ke Instagram. Wah, sebagai Greysonators dan Enchancers kamu cemburu enggak sama Whiskey? He-he-he. " });
            this.InfoItems.Add(new ItemViewModel() { Id = "5", Title = "McKenzie Foy: Perjuangan Menjadi Renesmee", Image = "http://www.kawankumagz.com/articleFoto/thumbs/McKenzie_Foy:Perjuangan_Menjadi_Renesmee.jpg", Description = "Emang enggak gampang memerankan buah hati dari Edward Cullen dan Bella Swan.", Content = "Emang enggak gampang memerankan buah hati dari Edward Cullen dan Bella Swan. Mackenzie Foy harus mempersiapkan beberapa hal sampai dia cocok jadi Renesmee Cullen. Dari mulai rambut palsu, contact lens, sampai gigi palsu. Rambut palsu 'Aku mengenakan rambut palsu yang disisipkan di dalam rambutku, sehingga terlihat sangat panjang' cerita Mackenzie mengenai wardrobe-nya saat menjadi Renesmee. 'Dan mereka meletakkannya disela-sela rambut asliku. Lalu membuat rambutku ikal,' ujar Mackenzie sambil memperlihatkan rambutnya.Untuk menata rambut Mackenzie sendiri dibutuhkan 20 menit. Kehilangan gigi Selama proses syuting Breaking Dawn 2 Mackenzie sempat kehilangan lima gigi susu. Alhasil Mackenzie harus menambalnya agar tidak terlihat ompong. 'Aku kehilangan lima gigi. Empat gigi susu dan satu gigi graham,' cerita Mackenzie." });
            this.InfoItems.Add(new ItemViewModel() { Id = "6", Title = "Kristen Stewart: Cinta Segitiga", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Kristen_Stewart:_Cinta_Segitiga.jpg", Description = "Tema cinta segitiga makin melekat sama Kristen Stewart", Content = "Tema cinta segitiga makin melekat sama Kristen Stewart. Setelah kisah cinta segitiga antara Bella, Edward, dan Jacob, beberapa waktu lalu Kristen juga dilanda gosip kalau dia dekat dengan seorang sutradara. Kristen mengakui kejadian ini dan meminta maaf di depan umum. Sementara Robert Pattinson enggak mau banyak komentar. Tapi keduanya masih bersama. Mereka juga selalu tampil berdua di gelaran premier film terbaru mereka, Breaking Dawn. Tapi ke mana pun Kristen pergi, tema ini selalu datang padanya, tema cinta segitiga. Mengikuti kata hati Kristen bilang, kadang dia enggak mengerti keputusan yang Bella, karakter yang dia mainkan dalam Twilight, buat dalam kisahnya. Tapi, dia juga enggak bilang kalau Bella salah. 'Tapi aku merasakan kalau semua keputusan Bella selalu datang dari dalam hatinya yang jujur,' ungkap Kristen. 'Sebagai perempuan, aku pikir penting untuk mendengarkan apa kata hati kita. Kadang kita merasa enggak tahu kenapa kita merasa begini, tapi aku merasakannya. Dan aku akan segera mencari tahu apa alasan aku merasakannya,' lanjutnya. Jadi orang yang lebih bahagia Kristen juga bilang, kalau dia bisa mengerti apa yang Bella rasakan terhadap Jacob dan juga pada Edward. Dan buat Kristen, cinta segitiga yang terjadi di Twilight terjadi karena semua orang ingin bahagia. 'Bella membutuhkan Jacob dalam hidupnya. Jacob juga sama,' kata Kristen. 'Ini bukan sesuatu yang tidak seimbang. Aku pikir mereka sangat membutuhkan satu sama lain. Kalau kita bisa melewati anggapan umum dan enggak ngedengerin apa pendapat orang, dan memiliki apa yang kamu mau, kita akan bisa menjadi orang yang lebih bahagia,' tutup Kristen." });
            this.InfoItems.Add(new ItemViewModel() { Id = "7", Title = "Kemal Palevi: Super Siap Untuk Absurd Tour 2nd Round", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Kemal_Palevi:_Super_Siap_Untuk_Absurd_Tour_2nd_Round.jpg", Description = "Setelah merampungkan Absurd Tour putaran pertamanya, kini Kemal Palevi siap untuk menjalani Absurd Tour 2nd Round. ", Content = "Setelah merampungkan Absurd Tour putaran pertamanya, kini Kemal Palevi siap untuk menjalani Absurd Tour 2nd Round. Komedian yang dikenal sebagai komedian termuda dengan tur terbanyak yang pernah ada di Indonesia ini sudah mempersiapkan banyak hal untuk tur keduanya kali ini. Coba makanan daerah 'Hal pertama yang gue lakukan saat mengunjungi kota-kota ini adalah nyobain masakan daerahnya,' ujar Kemal antusias. Salah satu yang membuat Kemal enggak kapok nyobain makanan daerah adalah saat dia mengunjungi Palangkaraya. 'Waktu itu pernah gue makan ikan bakar di Palangkaraya dan sumpah itu ikan enak banget, kayaknya itu ikan bakar terenak yang pernah guemakan seumur-umur' cerita Kemal. Dan untuk kota selanjutnya Kemal sudah menyiapkan perutnya untuk mencicipi kuliner khasnya. 'Abis ini kan gue akan mengunjungi Padang, nah kata orang-orang kan masakan Padang di Padang sendiri itu beda kan, jadi gue mau nyobain bedanya kayak apa!' tutur Kemal. Belajar kata kasar Selain mencoba makanannya, hal yang Kemal pelajari sebelum tampil di panggung adalah belajar kata kasar daerah tersebut. 'Tujuannya kalau ada penonton yang teriakin kata kasar itu saat gue manggung, gue tau artinya! ha-ha-ha' ucap Kemal." });
            this.InfoItems.Add(new ItemViewModel() { Id = "8", Title = "Owl City: Kangen Nasi Goreng", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Owl_City:_Kangen_Nasi_Goreng.jpg", Description = "Satu hal yang paling Adam kangenin dari Indonesia adalah nasi goreng. ", Content = " Satu hal yang paling Adam kangenin dari Indonesia adalah nasi goreng. Enggak bohong, cowok asal Minnesota ini ternyata memang doyan banget sama makanan yang satu ini. 'Aku suka banget makanan Indonesia. Makanya aku kangen banget nasi goreng!' ungkap cowok pelantun lagu Good Time ini sehari sebelum Midsummer Station World Tour 2012 digelar di Jakarta, Selasa (13/11). Ketika cowok asal negara Paman Sam lainnya mungkin enggak terlalu tahan makanan pedas, Adam bilang dia lumayan suka. 'Aku suka makanan yang agak spicy tapi enggak terlalu pedas juga. Biasanya aku bisa tahu apakah makanan itu pedas banget atau enggak dengan melihatnya saja,' jelasnya. Selain di Indonesia, Adam juga selalu menyempatkan diri mencoba berbagai makanan khas dari tiap negara yang di kunjungi. 'Salah satu hal menyenangkan yang bisa aku dapatkan dari pergi ke berbagai negara adalah mencoba berbagai makanannya,' kata dia. Wah, asal jangan sampai sakit perut yah, Adam! Simak wawancara lengkap dengan Adam Young di W edisi 139 terbit 28 November 2012 nanti, yah!" });
            this.InfoItems.Add(new ItemViewModel() { Id = "9", Title = "Kemal Palevi: Banyak Kejutan di Absurd Tour 1", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Kemal_Palevi:_Banyak_Kejutan_di_Absurd_Tour_1.jpg", Description = "Kemal Palevi baru aja merampungkan Absurd Tour yang pertama. Dibuka dari kota Cirebon hingga Bandung", Content = "Kemal Palevi baru aja merampungkan Absurd Tour yang pertama. Dibuka dari kota Cirebon hingga Bandung, Kemal merasa memiliki kejutan-kejutan manis di dari Kemalicious tiap penampilannya. Diluar ekspektasi 'Bener-bener Absurd Tour ini diluar ekspektasi, dari mulai jumlah penontonnya sampai reaksi-rekasi mereka ditiap kota,' ujar Kemal saat diwawancarai hari Kamis (15/11). Kekagetan Kemal memang bukan tanpa alasan, Kemal yang terbilang baru dalam dunia stand up comedy ternyata berhasil menjual seluruh tiket turnya tanpa sisa. 'Yang paling lucu waktu di Semarang, itu sampe dijual tiket meet and greet,' cerita Kemal. 'Padahal selama ini tiap kita kemana juga pasti ada meet and greet, antusias penonton yang di Semarang tuh luar biasa banget sampai tiket meet and greet aja sold out,' lanjut Kemal sambil tertawa.  Justin Bieber Indonesia Antusiasme Kemalicious di luar kota Jakarta memang enggak diragukan lagi. Kemal kerap mendapatkan sambutan yang hangat, sampai-sampai bingung bagaimana harus meresponnya." });
            this.InfoItems.Add(new ItemViewModel() { Id = "10", Title = "Ali Stroker Glee Project: 'Being Me is Enough!' ", Image = "http://www.kawankumagz.com/articleFoto/thumbs/Ali_Stroker_Glee_Project:_Being_Me_is_Enough!.jpg", Description = "Ali Stroker, salah satu finalis Glee Project season kedua ini memang menginspirasi! ", Content = "Ali Stroker, salah satu finalis Glee Project season kedua ini memang menginspirasi! Suaranya yang merdu dan semangatnya bikin banyak orang kagum padanya. Sebenarny, Ali adalah penyanyi Mezzo-Soprano, tetapi karena tubuhnya lumpuh dari dada ke bawah, menyebabkan diafragma, perut, dan inti tubuhnya tidak sama seperti penyanyi Mezzo-Soprano lainnya. Dia harus membuat sendiri teknik menyanyi yang bisa bekerja sama dengan keadaan tubuhnya. Bercita-cita menjadi bintang Kecelakaan mobil yang menimpanya saat usia dua tahun tidak membuat Ali melupakan impiannya. Dia tetap berjuang untuk meraih impiannya menjadi bintang. Ali baru saja lulus dari universitas New York Tisch School of the Arts, dimana dia mempelajari teater musikal dan drama. Sjak usia enam tahun, Ali sudah aktif membintangi teater. Dia telah membintangi hampir 30 drama. Belum lama ini dia mendapat peran di summer theater program, di Amsterdam. Dia memerankan suster Aloysius, dalam drama Doubt. Yup, dia adalah aktris, penyanyi, penulis dan juga dancer. Ali sangat multitalented ya? Nyaman dengan tubuhnya Di bulan terakhirnya kuliah, Ali telah menandatangani kontrak dengan agensi bakat, dan telah membintangi iklan MasterCard. Ali juga pernah merasa frustasi dengan keadaan tubuhnya ketika itu. Tetapi Ali merasa kalau keadaan tubuhnya membuatnya mendapat kesempatan besar seperti sekarang, 'Aku enggak akan bisa sejauh ini kalau bukan karena bantuan kursi rodaku. Sejarah hidupku membantuku dalam karir,' cerita Ali. Mencoba untuk menginspirasi Ali ingin orang-orang yang bernasib sama sepertinya, bisa bangkit dari kesedihan dan mencapai impiannya. Musim panas tahun lalu Ali pergi ke Afrika Selatan, menghibur anak kecil yang menderita AIDS dengan membacakan buku cerita. Dia juga menjadi juru bicara untuk sebuah perusahaan kursi roda bernama Colours Wheelchair dan juga organisasi Dana & Reeve, sebuah organisasi yang memiliki misi untuk menyembuhkan kelumpuhan dengan cara mengumpulkan sumbangan." });            

            this.IsDataLoaded = true;
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged(String propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (null != handler)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}